
local Rebirth_Cfg=_G.CommonOHOH.config.Rebirth
local ItemTool =_G.CommonOHOH.load.ItemTool();
local CallBackManager = _G.CommonOHOH.load.CallBackManager();
local gMaxBoost=0
for _,v in pairs(Rebirth_Cfg) do
  if v.boost>gMaxBoost then
      gMaxBoost=v.boost
  end
end
local M={}

-- 是否能够重生
function M.isCanRebirth(dataStore)
    return M.IsLevelCanRebirth(dataStore) and M.IsHadEnough(dataStore)
end


-- 是否达到重生等级
function M.IsLevelCanRebirth(dataStore)
    local base=dataStore:GetData("base")
    local rebirth = base.rebirth
    local currentLevel =base.level
    local cfg= Rebirth_Cfg[rebirth]
    if not cfg then
        return false
    end
    local nextLevel=cfg["requiredLevel"]
    return currentLevel>=nextLevel
end

-- 是否达到重生等级
function M.IsHadEnough(dataStore)
    local key,count =M.GetCostItemRebirthtData(dataStore)
    if not key then
       return false
    end
   return  ItemTool.IsHadEnough(key,count,dataStore)
end

--获取重生消耗
function M.GetCostItemRebirthtData(dataStore)
    local rebirth = dataStore:GetData("base").rebirth
    local cfg= Rebirth_Cfg[rebirth]
    if not cfg then
        return 
    end
     return   cfg["costItemId"],cfg["costItemAmount"]
end


function M.GetMaxBoost(player)
  return gMaxBoost
end


--   --重生给经验提供加成
-- function M.AddBoost(player,dataStore)
--     local con=  player.ExpValueMul2Event:Connect(function(gid,gtype,...)
--         local cfg=Rebirth_Cfg[dataStore:GetData("base").rebirth]
--         return cfg.boost+1
--      end)
--      return con
-- end



  --重生给经验提供加成
  function M.AddBoost(player,dataStore)
    local con=  player.ExpValueMul2Event:Connect(function(gid,gtype,...)
        local cfg=Rebirth_Cfg[dataStore:GetData("base").rebirth]
        if not cfg then
           return gMaxBoost+1 --
        else
          return cfg.boost+1
        end
       
     end)
     return con
end


return M